<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>16平移旋转</title>
</head>
<body>
    <canvas id="oCanvas" width="600" height="700" style="border:1px black solid"></canvas>
</body>

<script>
    // 获取canvas对象
    var canvas = document.getElementById("oCanvas");
    // 通过canvas对象获取 2d对象（画笔对象）
    var ctx = canvas.getContext('2d');

    // 新建一条路径
    ctx.beginPath();
    ctx.rect(0,0,100,100);
    ctx.fill();
// 学习 save() restore()方法
//保存当前canvas的状态(平移,旋转,缩放的状态)
    ctx.save();

    ctx.beginPath();
    //移动参考点
    ctx.translate(100,100);
    // 设置样式
    ctx.fillStyle="blue";
    ctx.rect(0,0,100,100);
    ctx.fill();
    
//还原save时候的canvas的状态
    ctx.restore();

    ctx.beginPath();
    ctx.fillStyle="red";
    ctx.rect(0,0,50,50);
    ctx.fill();


    ctx.save();
// 学习canvas的   scale(横向放大倍数,纵向放大倍数)
    ctx.beginPath();
    ctx.fillStyle="green";
    ctx.rect(200,200,50,50);
    
    ctx.translate(200,200);
    ctx.scale(2,1);
    // 坐标为 0,0的时候 不会扩大坐标轴,,否则坐标轴也要扩大
    ctx.rect(0,0,50,50);
    ctx.fill();
    
    ctx.restore();

//旋转
    ctx.fillStyle="yellow";
    ctx.rotate(60*Math.PI/180);
    ctx.fillRect(0,0,100,100);




</script>
</html>